Page({
  data: {
    orderItems: [],    // 订单商品列表
    totalPrice: 0,     // 商品总价格
    tableNumber: '堂食', // 默认为堂食
    totalAmount: 0,    // 实付金额
    remark: '',        // 订单备注
    loading: true      // 加载状态
  },
  
  onLoad: function() {
    // 获取购物车选中的商品
    this.getCartSelectedItems();
  },
  
  // 返回上一页
  goBack: function() {
    wx.navigateBack({
      delta: 1
    });
  },
  
  // 获取购物车选中的商品
  getCartSelectedItems: function() {
    this.setData({ loading: true });
    
    const app = getApp();
    app.globalData.api.cart.getList()
      .then(res => {
        // 筛选出选中的商品
        const selectedItems = (res.results || []).filter(item => item.is_checked);
        
        // 如果没有选中商品，提示并返回购物车页面
        if (selectedItems.length === 0) {
          wx.showToast({
            title: '请先选择商品',
            icon: 'none',
            duration: 2000
          });
          
          setTimeout(() => {
            wx.navigateBack({
              delta: 1
            });
          }, 2000);
          
          return;
        }
        
        // 计算总价
        let totalPrice = 0;
        selectedItems.forEach(item => {
          totalPrice += item.total_price;
        });
        
        const totalAmount = totalPrice;
        
        // 准备订单商品列表
        const orderItems = selectedItems.map(item => {
          return {
            id: item.id,
            food_id: item.food,
            name: item.food_info.name,
            image: item.food_info.image || app.globalData.api.getFullImageUrl(item.food_info.image),
            price: item.food_info.price,
            spec: item.spec_info ? item.spec_info.name : '标准',
            count: item.count
          };
        });
        
        this.setData({
          orderItems,
          totalPrice: totalPrice.toFixed(2),
          totalAmount: totalAmount.toFixed(2),
          loading: false
        });
      })
      .catch(err => {
        console.error('获取购物车数据失败', err);
        this.setData({ loading: false });
        
        wx.showToast({
          title: '获取数据失败',
          icon: 'none'
        });
        
        setTimeout(() => {
          wx.navigateBack({
            delta: 1
          });
        }, 2000);
      });
  },
  
  // 输入备注
  onRemarkInput: function(e) {
    this.setData({
      remark: e.detail.value
    });
  },
  
  // 跳转到地址选择页面
  goToAddress: function() {
    wx.navigateTo({
      url: '/pages/address/address?select=true'
    });
  },
  
  // 提交订单
  submitOrder: function() {
    if (this.data.orderItems.length === 0) {
      wx.showToast({
        title: '订单中没有商品',
        icon: 'none'
      });
      return;
    }
    
    wx.showLoading({
      title: '正在提交...',
    });
    
    // 准备订单数据
    const orderData = {
      remark: this.data.remark,
      table_number: this.data.tableNumber,
      // 提取购物车项的ID列表，这是后端API期望的格式
      cart_item_ids: this.data.orderItems.map(item => item.id)
    };
    
    console.log('提交订单数据:', orderData);
    
    // 调用创建订单API
    const app = getApp();
    app.globalData.api.order.create(orderData)
      .then(res => {
        wx.hideLoading();
        
        // 创建成功后，跳转到订单详情页
        wx.showToast({
          title: '下单成功',
          icon: 'success',
          duration: 2000,
          success: () => {
            // 跳转到订单列表
            setTimeout(() => {
              wx.redirectTo({
                url: `/pages/orders/orders?from=submit`
              });
            }, 2000);
          }
        });
      })
      .catch(err => {
        wx.hideLoading();
        console.error('创建订单失败', err);
        
        wx.showToast({
          title: '创建订单失败',
          icon: 'none'
        });
      });
  }
}) 